﻿/*
 * Created by SharpDevelop.
 * User: NitroPigSoft02
 * Date: 2012-09-25
 * Time: 오후 5:19
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Xml;
using System.IO;


namespace Test
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		
		
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		
		//XML파일을 만듬.
		private XmlDocument XMLCreate(String fileName)
        {
            // 문서를 만들고 지정된 값의 노드를 만든다..
            XmlDocument NewXmlDoc = new XmlDocument();
            NewXmlDoc.AppendChild(NewXmlDoc.CreateXmlDeclaration("1.0", "utf-16", "yes"));
            // 최상위 노드를 만든다.
            XmlNode root = NewXmlDoc.CreateElement("", "Root", "");
            NewXmlDoc.AppendChild(root);
            // 지정된 XML문서로 만들고 저장한다.
            NewXmlDoc.Save(fileName);
            
            return NewXmlDoc;
        }
		
		private void ReadXMLFile(XmlDocument doc)
		{
			
		}
		
		private void XMLRead(String fileName)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(fileName);
                XmlElement root = xmldoc.DocumentElement;
 
                // 노드 요소들
                XmlNodeList nodes = root.ChildNodes;
 
                // 노드 요소의 값을 읽어 옵니다.
                foreach (XmlNode node in nodes)
                {
                    switch (node.Name)
                    {
                        case "root_a":
                            string a = node.InnerText;
                            break;
 
                        case "root_b":
                            string b = node["b"].InnerText;
                            string bb = node["bb"].InnerText;
                            break;
 
                        case "root_c":
                            int c = int.Parse(node.InnerText);
                            break;
                    }
                }
            }
            catch (IOException ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
		
		void 트리뷰ToolStripMenuItemClick(object sender, EventArgs e)
		{
			//열 공간이 부족하다면 메인뷰를 옆으로 조금 밀어서 TreeView를 띄운다.
			TreeViewForm form = new TreeViewForm();
			Point loc = new Point(this.Location.X - form.Width,this.Location.Y);
			form.Show();
			form.Location = loc;
		}
		
		void MainFormLoad(object sender, EventArgs e)
		{
			트리뷰ToolStripMenuItemClick(this,null);
		}
		
		private XmlDocument doc = null;
		private bool isOpenFile = false;
		void 저장ToolStripMenuItemClick(object sender, System.EventArgs e)
		{
			SaveFileDialog save = new SaveFileDialog();
			save.Filter = "XML File (*.xml) | *.xml;";
			if(save.ShowDialog() != DialogResult.OK) return;
			
			/*
			  * 1. XML 파일을 만든다.
			  * 2. XML 파일에 현재 에디터에 있는 내용들을 넣는다.
			  * 3. 노드가 변경될때 혹은 PictureBox에서 노드가 변경될때 XML파일에 편집한다.*/
			 
			if(isOpenFile){
				//이미 열려있는 경우
				
			}else{
				//열려있지 않은 경우
				doc = XMLCreate(save.FileName);	//1. XML 파일을 만든다.
			}
			
			//만들어진 파일을 TextBox 컨트롤에 집어넣는다.
			//string text = System.IO.File.ReadAllText(save.FileName);
			//textBox.Text = text;
		}
		
		void 열기ToolStripMenuItemClick(object sender, System.EventArgs e)
		{
			OpenFileDialog open = new OpenFileDialog();
			open.Filter = "XML File (*.xml) | *.xml;";
			if(open.ShowDialog() != DialogResult.OK) return;

			isOpenFile = true;		//열려있다고 표시
			
			//연 파일을 TextBox 컨트롤에 집어넣는다.
			string text = System.IO.File.ReadAllText(open.FileName);
			richTextBox.Text = text;
			
			//연 파일을 TreeView에 집어넣는다.
		}
	
	}
}
